package com.mysoap.medicine.client;

import java.text.ParseException;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import com.bs.entity.MedicineCategory;
import com.bs.entity.MedicineIn;
import com.bs.entity.MedicineInfo;
import com.bs.entity.MedicineOut;
import com.bs.entity.MedicineStorage;
import com.mysoap.medicine.bean.MedicineInfoRequest;
import com.mysoap.medicine.bean.SetUtils;

public class MedicinePropTool {
	public static MedicineInfo deal(MedicineInfoRequest medicineRequest) throws Exception{
		MedicineInfo info = new MedicineInfo();
		Date date;
	//	Date date = DateHelper.string2Date(medicineRequest.getBuyTime());
		date = medicineRequest.getMedicineInfo().getBuyTime();
		info.setMedicineDesc(medicineRequest.getMedicineInfo().getMedicineDesc());
		info.setMedicineId(medicineRequest.getMedicineInfo().getMedicineId());
		info.setMedicineFactory(medicineRequest.getMedicineInfo().getMedicineFactory());
		info.setMedicineFactoryAddress(medicineRequest.getMedicineInfo().getMedicineFactoryAddress());
		info.setMedicineCode(medicineRequest.getMedicineInfo().getMedicineCode());
		info.setMedicineName(medicineRequest.getMedicineInfo().getMedicineName());
		info.setMedicinePrice(medicineRequest.getMedicineInfo().getMedicinePrice());
		System.out.println(medicineRequest.getMedicineInfo().getMedicineName());
		
		if(medicineRequest.getMedicineIns()!=null ){
			MedicineIn[] ins  = medicineRequest.getMedicineIns();
			Set<MedicineIn> mIns = new HashSet<MedicineIn>();
//			for(int i =0;i<medicineRequest.getMedicineIns().length;i++){
//				Date inDate = medicineRequest.getMedicineIns()[i].getInRecordTime();
//				
//				
//			}
			
			System.out.println("mIns"+mIns);
			mIns = SetUtils.arrToSet(ins);
		//	info.setMedicineIns(mIns);
					
			
		}
		if( medicineRequest.getMedicineOuts()!=null){
			MedicineOut[] outs = medicineRequest.getMedicineOuts();
			Set<MedicineOut> mOuts = new HashSet<MedicineOut>();
			System.out.println("mOuts"+mOuts);
			mOuts = SetUtils.arrToSet(outs);
			info.setMedicineOuts(mOuts);
		}
		
	
		
		System.out.println("-------------------begin");
		
//		MedicineIn[] ins  = medicineRequest.getMedicineIns();
//		MedicineOut[] outs = medicineRequest.getMedicineOuts();
//		System.out.println("oo"+ins);
//		Set<MedicineIn> mIns = new HashSet<MedicineIn>();
//		Set<MedicineOut> mOuts = new HashSet<MedicineOut>();
//		System.out.println("mIns"+mIns);
//		mIns = SetUtils.arrToSet(ins);
//		mOuts = SetUtils.arrToSet(outs);
		System.out.println("================end");
//		info.setMedicineDesc(medicineRequest.getMedicineDesc());
//		info.setMedicineId(medicineRequest.getMedicineId());
//		info.setMedicineFactory(medicineRequest.getMedicineFactory());
//		info.setMedicineFactoryAddress(medicineRequest.getMedicineFactoryAddress());
//		info.setMedicineCode(medicineRequest.getMeidcineCode());
//		info.setMedicineId(medicineRequest.getMedicineId());
		
		info.setBuyTime(date);
		
		
//		info.setMedicineName(medicineRequest.getMedicineName());
//		info.setMedicinePrice(medicineRequest.getMedicinePrice());
		
		MedicineCategory mc = new MedicineCategory();
		System.out.println("medicineRequest.getMedicineCategory()"+medicineRequest.getMedicineCategory());
		if(medicineRequest.getMedicineInfo().getMedicineCategory()!=null){
		//mc.setCategoryCreateTime(DateHelper.string2Date(medicineRequest.getCategoryCreateTime()));
		mc.setCategoryDesc(medicineRequest.getMedicineInfo().getMedicineCategory().getCategoryDesc());
		mc.setCategoryName(medicineRequest.getMedicineInfo().getMedicineCategory().getCategoryName());
		mc.setMedicineInfos(medicineRequest.getMedicineInfo().getMedicineCategory().getMedicineInfos());
		info.setMedicineCategory(mc);
		}
		
		MedicineStorage ms = new MedicineStorage();
		if(medicineRequest.getMedicineInfo().getMedicineStorage()!=null){
		ms.setMedicineCode(medicineRequest.getMedicineInfo().getMedicineStorage().getMedicineCode());
		
		ms.setMedicineQuantity(medicineRequest.getMedicineInfo().getMedicineStorage().getMedicineQuantity());
		ms.setMedicineInfo(info);
		info.setMedicineStorage(ms);
		}
		
		
		System.out.println("----------------------------------------"+info);
		return info;
		
	}
}
